home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1997 August / Macworld (1997-08).dmg / Serious Demos / Crimson Demo / Crimson Basic Manual / Crimson Basic Manual.rsrc / TEXT_1500_Language Reference Part 1.txt < prev    next >
Text File  |  1997-06-17  |  15KB  |  632 lines

  1.                  Language Reference
  2. A    
  3.  
  4. Aboutmenu(
  5.  
  6. The AboutMenu function adds an 'About' menu entry to the 'Apple' Menu and returns the Menu Item id of that menu entry.
  7.  
  8. Syntax
  9.             ABOUTMENU(<string expression>)
  10.  
  11. Example 
  12.             MenuItem=AboutMenu("About My Program")
  13.  
  14. Abs(
  15.  
  16. The ABS( function returns the absolute value of a number.
  17.  
  18. Syntax
  19.             ABS(<numeric expression>)
  20.  
  21. Example
  22.  
  23.             Print ABS(9)      --prints 9
  24.             Print ABS(-4.3)    --prints 4.3
  25.  
  26. Add
  27.  
  28. The ADD command performs the addition function on two integer operators.
  29.  
  30. Syntax
  31.             ADD <integer variable name>,<numeric expression>
  32.  
  33. Example
  34.             ADD Myvar,10    -- Adds 10 to variable Myvar
  35.             ADD A,B             -- Adds variable B to A
  36.  
  37. Addmenu(
  38.  
  39. The Addmenu function adds a menu to the existing Menu Bar and returns the Menu id of that menu.
  40.  
  41. Syntax
  42.             ADDMENU(<string expression>)
  43.  
  44. Example
  45.             FileMenu=AddMenu("File")
  46.  
  47. Addmenuitem(
  48.  
  49. The Addmenuitem function adds a menu item to an existing menu and returns the Menu Item id of that menu item.
  50.  
  51. Syntax
  52.             ADDMENUITEM(<integer expression>,<string expression>,<string expression>)
  53.  
  54. Example
  55.             MenuItemId=AddMenuItem(FileMenu,"Quit","Q")
  56.  
  57. Note
  58. The first parameter is the Menu id of the Menu to which the Menu Item should be appended.
  59. The second parameter is the string which should appear on the Menu Item when it is displayed.
  60. The third parameter is the keyboard equivalent character. If a null string is supplied in this parameter then no keyboard equivalent will appear in the menu item.
  61.  
  62. Alen(
  63.  
  64. The ALEN( function returns the length (number of elements) in the given array.
  65.  
  66. Syntax
  67.             ALEN(<array variable name>)
  68.  
  69. Example
  70.             Global Myvar As Integer(10)
  71.             Print ALEN(Myvar)     -- prints 10.
  72.  
  73. Note
  74.             Arrays are dynamically resizable. Use this function to determine the
  75.             current size. See REDIM and ARRAYLOAD.
  76.  
  77. And
  78.  
  79. The AND operator performs a logical AND on two numeric values or conditional
  80. expressions.
  81.  
  82. Syntax
  83.             <numerical or logical expression> AND <numerical or logical expression>
  84.  
  85. Example
  86.             A AND B                 -- returns the bitwise AND of A and B
  87.             IF A>B AND C<D      -- performs a logical AND on the two conditional
  88.                                               expressions.
  89.  
  90. Arrayload
  91.  
  92. The ARRAYLOAD command loads an array into memory from a DATA type resource
  93. and dynamically resizes it.
  94.  
  95. Syntax
  96.             ARRAYLOAD <array variable name>,<DATA resource id>
  97.  
  98. Example
  99.             Global Myarray As Integer(0)
  100.             ARRAYLOAD Myarray,128
  101.  
  102. Note
  103.             The ALEN( function can be used to determine the size of the array.
  104.  
  105. Arraysave
  106.  
  107. The ARRAYSAVE command saves the contents of an array in a DATA type resource.
  108.  
  109. Syntax
  110.             ARRAYSAVE <array variable name>,<DATA resource id>
  111.  
  112. Example
  113.             ARRAYSAVE Myarray,128
  114.  
  115. Note
  116.             The ARRAYSAVE and ARRAYLOAD commands are useful for saving data
  117.             between invocations of a program run.
  118.  
  119. Asc(
  120.  
  121. The ASC function returns the ASCII value of the first character in a string.
  122.  
  123. Syntax
  124.            ASC(<string expression>)
  125.  
  126. Example
  127.             Print ASC("Chalfont")      -- prints 67.
  128.  
  129. Ascan(
  130.  
  131. The ASCAN function searches a single dimensional string array for a chosen
  132. string and returns the index position of that string, or zero if that string is
  133. not contained within the array.
  134.  
  135. Syntax
  136.             ASCAN(<string array variable>,<string expression>,<integer expression>)
  137.  
  138. Example
  139.             Mystr(1)="ABC"
  140.             Mystr(2)="DEF"
  141.             Mystr(3)="GHI"
  142.             Idx=ASCAN(Mystr,"DEF",0)      -- idx is set to 2
  143.  
  144. Note
  145.             If the <integer expression> is set to zero then the whole array is searched.
  146.             If set to any number less than that then only part of the array is searched.
  147.  
  148. B    
  149. Break
  150.  
  151. Forces execution, within a DO CASE construct to continue execution after the ENDCASE statement.
  152.  
  153. Syntax
  154.         BREAK
  155.  
  156. Example
  157.         See DO CASE.
  158.  
  159. Byref(
  160.  
  161. The Byref( function passes the address of a variable to a procedure or function so that its value may be altered therein. The default is to pass parameters by value.
  162.  
  163. Syntax
  164.         BYREF(<variable name>)
  165.  
  166. Example
  167.         Retval=Myfunc(A, BYREF(B))
  168.  
  169. Byte(
  170.  
  171. The BYTE( function performs type conversion into BYTE datatype format.
  172.  
  173. Syntax
  174.             BYTE(<expression>)
  175.  
  176. Example
  177.             B=BYTE(I)
  178.  
  179. Note
  180.             If the <expression> yields an Integer or Word result then it is truncated
  181.             to 8 bits by the BYTE( function.
  182.             If the <expression> yields a Char, Structure, Str255 or String result then
  183.             the result will be equivalent to the ascii value of the first character.
  184.             The Byte function is not permitted on a Float expression.
  185.  
  186. C    
  187. Case
  188.  
  189. See DO CASE
  190.  
  191. Char(
  192.  
  193. The CHAR( function performs type conversion into CHAR datatype format.
  194.  
  195. Syntax
  196.             CHAR(<expression>)
  197.  
  198. Example
  199.             C=CHAR(I)
  200.  
  201. Note
  202.             If the <expression> yields a Byte result then this will result in a Char
  203.             datatype containing a single character equivalent to the ascii character
  204.             contained in the Byte field.
  205.             If the <expression> yields a Word or Integer result then this will be
  206.             converted into a character string containing the value of the Word or
  207.             Integer.
  208.             If the <expression> yields a Str255 or String result then this will be
  209.             converted into the equivalent Char representation.
  210.             The datatypes Char and Structure are equivalent.
  211.  
  212. Chr(
  213.  
  214. The CHR( function converts an Integer datatype into a single character string
  215. containing the ascii representation of the lower 8 bits of the Integer.
  216.  
  217. Syntax
  218.             CHR(<integer expression>)
  219.  
  220. Example
  221.             C=CHR(I)
  222.  
  223. Close
  224.  
  225. Closes a disk file.
  226.  
  227. Syntax
  228.         CLOSE #<file number>
  229.  
  230. Example
  231.         OPEN "Myfile" AS #1
  232.         ------
  233.         CLOSE #1
  234.  
  235. Close Console
  236. Closes the console window
  237.  
  238. Syntax
  239.         CLOSE CONSOLE
  240.  
  241. Cls
  242. The CLS command clears the console screen
  243.  
  244. Syntax
  245.         CLS
  246.  
  247. D    
  248. Debugger          
  249.             
  250. The DEBUGGER command enters a machine code debugger such as Macsbug if installed.
  251.  
  252. Syntax
  253.         DEBUGGER
  254.  
  255. Dec
  256.  
  257. The DEC command decrements the value of an integer variable. This is equivalent to but much faster than var=var-1.
  258.  
  259. Syntax
  260.         DEC <integer variable name>
  261.  
  262. Example
  263.         DEC A
  264.  
  265. Default
  266.  
  267. The default command forms part of the Do Case construct and marks the default statement set to be executed. Equivalent to CASE -1.
  268.  
  269. Syntax
  270.         DEFAULT
  271.  
  272. Example
  273.         See DO CASE.
  274.  
  275. Disablemenu
  276.  
  277. The Diablemenu command sets the Enabled status of a Menu or Menu Item to Off thus dimming the entry. Once disabled, the user can not select the menu entry.
  278.  
  279. Syntax
  280.         DISABLEMENU <integer expression>,<integer expression>) 
  281.  
  282. Example
  283.         DisableMenu FileMenu,2
  284.  
  285. Note
  286. The first parameter specifies the Menu id of the menu in question.
  287. The second parameter specifies the Menu Item id of the item to be disabled. If this parameter is set to zero, the whole menu is disabled.
  288.  
  289. Do
  290.  
  291. The Do command invokes a procedure optionally passing parameters.
  292.  
  293. Syntax
  294.         DO <procedure name>[(parm,parm....)]
  295.  
  296. Example
  297.         DO Myproc(Var1, Byref(Var2))
  298.  
  299. Do Case
  300.  
  301. The Do Case command marks the start of a CASE construct.
  302.  
  303. Syntax
  304.         DO CASE
  305.  
  306. Example
  307.         DO CASE
  308.             CASE A=1
  309.                 Do Myproc(B)
  310.                 BREAK
  311.             CASE (A,5) AND (B=2)
  312.                 C=Myfunc(A)
  313.                 BREAK
  314.             DEFAULT
  315.                 C=0
  316.         ENDCASE
  317.  
  318. Dpeek(
  319.  
  320. The Dpeek (Double Peek) function returns the 16 bit value stored in a given memory location.
  321.  
  322. Syntax
  323.         DPEEK(<integer value>)
  324.  
  325. Example
  326.         Myword=DPEEK(10538)
  327.  
  328. Dpoke
  329.  
  330. The Dpoke command places a 16 bit value into a given memory location. Use with care.
  331.  
  332. Syntax
  333.         DPOKE ,<integer memory address>,<integer value>
  334.  
  335. Example
  336.         DPOKE 10538,A
  337.  
  338. E    
  339. Else
  340.  
  341. The Else statement forms part of the IF,ELSE,ENDIF construct.
  342.  
  343. Syntax
  344.         ELSE
  345.  
  346. Example
  347.         See IF.
  348.  
  349. Enablemenu
  350.  
  351. The Enablemenu command sets the Enabled status of a Menu or Menu Item to On thus highlighting the entry. Once enabled, the user can select the menu entry.
  352.  
  353. Syntax
  354.         ENABLEMENU <integer expression>,<integer expression>) 
  355.  
  356. Example
  357.         EnableMenu FileMenu,2
  358.  
  359. Note
  360. The first parameter specifies the Menu id of the menu in question.
  361. The second parameter specifies the Menu Item id of the item to be enabled. If this parameter is set to zero, the menu is enabled and the menu items maintain their previous status.
  362.  
  363. End
  364.  
  365. The END statement returns program control to the Finder.
  366.  
  367. Syntax
  368.         END
  369.  
  370.  
  371. Endcase
  372.  
  373. The ENDCASE statement terminates a DO CASE construct.
  374.  
  375. Syntax
  376.         ENDCASE
  377.  
  378. Example
  379.         See DO CASE
  380.  
  381. Endif
  382.  
  383. The Endif statement terminates an IF,ELSE,ENDIF construct.
  384.  
  385. Syntax
  386.         ENDIF
  387.  
  388. Example
  389.         See IF
  390.  
  391. Endstruct
  392.  
  393. The Endstruct statement terminates a STRUCTURE, ENDSTRUCT declaration.
  394.  
  395. Syntax
  396.         ENDSTRUCT
  397.  
  398. Example
  399.         See Structure.
  400.  
  401. Eof(
  402.  
  403. The EOF( function is used to determine if the file pointer of a file has reached the End Of File.
  404.  
  405. Syntax
  406.         EOF(<file_number>)
  407.  
  408. Example
  409.         REPEAT
  410.             INPUT #1,Mystr,Myint
  411.             Do Myproc(Mystr,Myint)
  412.         UNTIL EOF(1)
  413.  
  414. Err
  415.  
  416. Err is a reserved variable which contains the code number of the last error which occurred. Where Err is set to zero, this indicates that no error has occurred.
  417.  
  418. Syntax
  419.         ERR
  420.  
  421. Example
  422.         IF Err <>0
  423.             Print "An error has occurred"
  424.         Endif
  425.  
  426. Note
  427. A negative error number denotes an operating system error and a positive error number denotes a run time error within your Basic program.
  428.  
  429. F    
  430. False
  431.  
  432. False, when used in an expression yields a result of zero and is used as a documentation aid.
  433.  
  434. Syntax
  435.         FALSE
  436.  
  437. Example
  438.         If A=False
  439.  
  440. Float(
  441.  
  442. The Float function performs type conversion into FLOAT datatype format.
  443.  
  444. Syntax
  445.         FLOAT(<expression>)
  446.  
  447. Example
  448.         MyFloat=FLOAT(Myint)
  449.  
  450. Note
  451.             If the <expression> yields an Word or Integer result then it is converted
  452.             to a Float value by the FLOAT( function.
  453.             If the <expression> yields a Char,  Str255 or String result then
  454.             the result will be equivalent to the numeric value of the string.
  455.  
  456. For
  457.  
  458. The FOR statement creates a loop that executes a given number of times.
  459.  
  460. Syntax
  461.         FOR <numeric variable> = <numeric expression> TO
  462.             <numeric expression> [STEP <numeric expression>]
  463.  
  464. Example
  465.         FOR I=1 TO 10
  466.             PRINT I
  467.         NEXT I
  468.  
  469.         will print the numbers 1 through to 10 on the console.
  470.  
  471.         For J=10 TO 1 STEP -2
  472.             PRINT J
  473.         NEXT J
  474.  
  475.         will print the numbers 10,8,6,4,2 on the console.
  476.  
  477. FSOpen
  478.  
  479. FSOpen opens a disk file using a System 7 filespec.
  480.  
  481. Syntax
  482.         FSOPEN <fsspec structure> [FOR <mode>] AS [#]<file number> [LEN=<record length>]
  483.  
  484. Example
  485.  
  486. Procedure Myproc()
  487. Local Reply As Structure
  488.     Local sfGood As Byte
  489.     Local sfReplacing As Byte
  490.     Local sfType As Integer
  491.     Local sfFile As Char[70]
  492.     Local sfScript As Word
  493.     Local sfFlags As Word
  494.     Local sfIsFolder As Byte
  495.     Local sfIsVolume As Byte
  496.     Local sfReserved1 As Integer
  497.     Local sfReserved2 As Word
  498. Endstruct
  499.  
  500. Local FSSpec As Structure
  501.     Local vRefNum As Word
  502.     Local parID As Integer
  503.     Local name As Str255[63]
  504. Endstruct
  505.  
  506.     _StandardGetFile(0,Word(1),Char("TEXT"),Reply)
  507.     If Integer(sfGood)<>0
  508.         FSSpec=sfFile
  509.         FSOpen FSSpec For Input As #1
  510.     Endif
  511.  
  512.     _StandardPutFile(Str255("Prompt"),Str255("Default name"),Reply)
  513.     If Integer(sfGood)<>0
  514.         FSSpec=sfFile
  515.         FSOpen FSSpec For Output As #1
  516.     Endif
  517.  
  518. ----------
  519. In the above example, the toolbox trap _StandardGetFile is used to prompt the user for a file to open and to return a file spec. The FSOpen command is then used to open the file.
  520. The _StandardPutFile is then used to prompt the user for a file to save. The FSOpen command is then used to open the file for Output.
  521. See 'Inside Macintosh Files' for more details on StandardGetFile and StandardPutFile.
  522. See OPEN for permissible modes etc.
  523.  
  524. Function
  525.  
  526. The Function statement declares the start of a user defined function.
  527.  
  528. Syntax
  529.         FUNCTION <name>(<parameter list>) RETURNING <data type>
  530.  
  531. Example
  532.  
  533.         FUNCTION Myfunc(A,B,C) RETURNING INTEGER
  534.  
  535.         Declares the start of a function, Myfunc, which receives 3 parameters (defined by
  536.         the PARAMETER statement) and returns an Integer data type to its caller.
  537.  
  538. G    
  539. Get
  540.  
  541. This statement retrieves a record from a files which has been opened in RANDOM mode.
  542.  
  543. Syntax
  544.         GET #<file_number>,<record_number>,<variable name>
  545.  
  546. Example
  547.         GET #1,123,Mystruct
  548.  
  549. Note
  550. The variable to which the data is read may be a STRING or a STRUCTURE type.
  551.  
  552. Getappmessage
  553.  
  554. This function returns the command with which the application has been started.
  555.  
  556. Syntax
  557.         GETAPPMESSAGE()
  558.  
  559. Example
  560.         Cmd=GETAPPMESSAGE()    .. see Getappfile
  561.  
  562. Note
  563.         GETAPPMESSAGE return 0 if the command is to Open file(s) and 1 if the
  564.         command is to Print the file(s).
  565.  
  566. Getappcount
  567.  
  568. This function returns the number of files with which the application has been started.
  569. (ie the number of files which have been dragged onto the application, or one if a file has been double clicked).
  570.  
  571. Syntax
  572.         GETAPPCOUNT()
  573.  
  574. Example
  575.         Mycount=GETAPPCOUNT()    .. see getappfile
  576.  
  577. Getappfile
  578.  
  579. This function returns into a structure the details of a file to be opened or printed.
  580.  
  581. Syntax
  582.         GETAPPFILE(<integer expression>)
  583.  
  584. Example
  585. Global I As Integer
  586. Global Command As Integer
  587.  
  588. Global AppStruct As Structure
  589.     Global AvRefNum As Word
  590.     Global Atype As Integer
  591.     Global AversNum As Byte
  592.     Global Afiller As Byte
  593.     Global AfileName As Str255 [64]
  594. Endstruct
  595.  
  596. Command=GetAppMessage()
  597.  
  598. If GetAppCount()>0
  599.     For I=1 To GetAppCount()
  600.         AppStruct=GetAppFile(I)
  601.         Do Case
  602.             Case Command=0  'Open file
  603.                 Do MyOpenFile(Integer(AvRefNum),Atype,String(AfileName)
  604.             Case Command=1 ' Print file
  605.                 Do MyPrintFile(Integer(AvRefNum),Atype,String(AfileName)
  606.         Endcase
  607.    Next I
  608. Endif
  609. End
  610.  
  611. Global
  612.  
  613. The Global statement declares Global variables.
  614.  
  615. Syntax
  616.         GLOBAL <variable name> AS <variable type> [<string length>] [<dimensions>]
  617.  
  618. Example
  619.         GLOBAL I AS INTEGER              .. declares variable I as an Integer
  620.         GLOBAL ST As STRING [10]      .. declares variable ST as a String of maximum
  621.                                                           length, 10 characters.
  622.         GLOBAL A AS INTEGER(20)       .. declares variable A as an Integer array of
  623.                                                           20 elements.
  624.  
  625.         GLOBAL B AS STRING [12] (15) .. declares B as a string array, maximum 12
  626.                                                            characters with 15 elements.
  627.  
  628.         GLOBAL T AS INTEGER(10,30)    .. declares T as an Integer array with 10
  629.                                                             rows and 30 columns.
  630.  
  631. Note
  632. Global variables may only be declared in the 'Initial' module.